import {Pipe, PipeTransform} from '@angular/core';

/**
 * 订单状态 0-有效、1-无效、2-待付款、3-待审核、4-审核不通过、5-审核通过、6-排队发货、7-待发货、8-待收货（已发货）、9-交易完成、10-支付超时、11-客服取消、12-客户取消、13-售后中、14-全部退货 15-部分被抢
 */
export const orderStateArrs = [
  {value: 0, label: '有效', color: '#666666'},
  {value: 1, label: '无效', color: '#666666'},
  {value: 2, label: '待付款', color: '#FF0000'},
  {value: 3, label: '待审核', color: '#FF9900'},
  {value: 4, label: '审核不通过', color: '#FF0000'},
  {value: 5, label: '审核通过', color: '#008000'},
  {value: 6, label: '排队发货', color: '#666666'},
  {value: 7, label: '待发货', color: '#FF9900'},
  {value: 8, label: '待收货（已发货）', color: '#666666'},
  {value: 9, label: '交易完成', color: '#008000'},
  {value: 10, label: '支付超时', color: '#FF0000'},
  {value: 11, label: '客服取消', color: '#FF0000'},
  {value: 12, label: '客户取消', color: '#FF0000'},
  {value: 13, label: '售后中', color: '#FF9900'},
  {value: 14, label: '全部退货', color: '#999999'},
  {value: 15, label: '部分被抢', color: '#FF0000'},
];

@Pipe({
  name: 'orderStatus'
})
export class OrderStatusPipe implements PipeTransform {

  transform(status: any, type: string) {
    let tempObj = orderStateArrs.find((item: any) => {
      return item.value == status;
    })

    if (type == 'text') {
      return tempObj?.label || '-';
    } else if (type == 'color') {
      return tempObj?.color || '';
    } else {
      return '';
    }
  }

}

// 订单分账状态 0-自营无需分账、1-父订单无需分账、2-待分账、3-分账中、4-已分账、5-分账失败、6-撤销中
export const orderSplitAccountStates = [
  { value: 0, label: '无需分账', color: '#666666' },
  { value: 1, label: '无需分账', color: '#666666' },
  { value: 2, label: '待分账', color: '#666666' },
  { value: 3, label: '分账中', color: '#faad14' },
  { value: 4, label: '已分账', color: '#008000' },
  { value: 5, label: '分账失败', color: '#FF0000' },
  { value: 6, label: '撤销中', color: '#FF0000' }
];

@Pipe({
  name: 'orderSplitAccountStatus'
})
export class orderSplitAccountPipe implements PipeTransform {
  transform(value: any, type: string = 'label') {
    if (value) {
      let tempObj: any = orderSplitAccountStates.find((item: any) => item.value === value);
      return tempObj[type];
    } else {
      return type === 'label' ? '无需分账' : '#666666';
    }
  }
}

// 分账付款方式 1 支付宝 2 微信 3 银联
@Pipe({
  name: 'payTypeStatus'
})
export class payTypeStatusPipe implements PipeTransform {
  transform(value: any) {
    switch (value) {
      case 1:
        return '支付宝';
      case 2:
        return '微信';
      case 3:
        return '银联';
      default:
        return '-';
    }
  }
}

// 退款状态 0未付款 1已付款 2部分退款 3全部退款
@Pipe({
  name: 'refundStatus'
})
export class RefundStatusPipe implements PipeTransform {

  transform(status: any) {
    switch (status) {
      case 0:
        return '未付款';
      case 1:
        return '已付款';
      case 2:
        return '部分退款';
      case 3:
        return '全部退款';
      default:
        return '-';
    }
  }

}

// 付款方式 1:支付宝，2：微信，3：银联
@Pipe({
  name: 'payStatus'
})
export class PayStatusPipe implements PipeTransform {
  transform(status: any) {
    switch (status) {
      case 1:
        return '支付宝';
      case 2:
        return '微信';
      case 3:
        return '银联';
      default:
        return '-';
    }
  }
}

// 售后信息状态 0-用户提交申请（待审核）、1-审核通过（待买家退货）、2-退货超时、3-商品已寄出、4-待平台审核、5-发起退款操作或直接退款、6-售后成功、7-售后失败、8-已取消
@Pipe({
  name: 'saleAfterStatus'
})
export class SaleAfterStatusPipe implements PipeTransform {

  transform(status: any) {
    switch (status) {
      case 0:
        return '用户提交申请（待审核）';
      case 1:
        return '审核通过（待买家退货）';
      case 2:
        return '退货超时';
      case 3:
        return '商品已寄出';
      case 4:
        return '待平台审核';
      case 5:
        return '发起退款操作或直接退款';
      case 6:
        return '售后成功';
      case 7:
        return '售后失败';
      case 8:
        return '已取消';
      default:
        return '-';
    }
  }

}

// 机器状态 0.正常 1.冻结 2.已出库 3重新入库
export enum DeviceStatus {
  正常,
  冻结,
  已出库,
  重新入库,
  已作废
}

// 渠道占用
export enum ChannelOccupy {
  未占用,
  回收占用,
  商城占用,
  出库单占用
}

// 订单状态
export enum RecycleStatus {
  待揽件邮寄 = 11,
  物流运输中 = 13,
  到货待验机,
  待确认交易,
  待付款,
  付款失败 = 18,
  付款成功,
  揽件前取消,
  验机中,
  待退回,
  退回途中,
  已退回,
  异常关闭,
  取消交易 = 91,
}

// 检测结果
export enum Restype {
  机况一致 = 11,
  机况存在差异,
  机型不一致,
  一单多机,
  非回收品类,
}

// 适用用户
export enum UserType {
  不限,
  C端,
  B端,
}

// 商品状态 0.上架中 1.待上架  2.已售出 3.售后中 4已冻结 5草稿 6审核不通过 7待审核
export enum CommodityStatus {
  上架中,
  待上架,
  已售出,
  售后中,
  已冻结,
  草稿,
  审核不通过,
  待审核
}
